﻿

Public Class Alta_profesionales
    Inherits System.Web.UI.Page

    Private Function RealizaCArga() As Boolean
        Dim i As Integer = 5
        Dim param(i - 1) As ADODB.Parameter

        '@Matricula varchar(50),
        '@TipoMAtricula varchar(50),
        '@Vigencia datetime,
        '@Especialidad varchar(50),
        '@Dni  varchar (10)


        param(0) = New ADODB.Parameter
        param(0).Name = "@Matricula"
        param(0).Type = ADODB.DataTypeEnum.adVarChar
        param(0).Direction = ADODB.ParameterDirectionEnum.adParamInput
        param(0).Value = TxtnumMAtricula.Text
        param(0).Size = 50

        param(1) = New ADODB.Parameter
        param(1).Name = "@TipoMAtricula"
        param(1).Type = ADODB.DataTypeEnum.adVarChar
        param(1).Direction = ADODB.ParameterDirectionEnum.adParamInput
        param(1).Value = CboTipoMatricula.Text
        param(1).Size = 50

        param(2) = New ADODB.Parameter
        param(2).Name = "@Vigencia"
        param(2).Type = ADODB.DataTypeEnum.adDate
        param(2).Direction = ADODB.ParameterDirectionEnum.adParamInput
        param(2).Value = CDate(txtVigencia.Text)
        'param(2).Size = 50

        param(3) = New ADODB.Parameter
        param(3).Name = "@Especialidad"
        param(3).Type = ADODB.DataTypeEnum.adVarChar
        param(3).Direction = ADODB.ParameterDirectionEnum.adParamInput
        param(3).Value = CboEspecialidad.Text
        param(3).Size = 50

        param(4) = New ADODB.Parameter
        param(4).Name = "@Dni"
        param(4).Type = ADODB.DataTypeEnum.adVarChar
        param(4).Direction = ADODB.ParameterDirectionEnum.adParamInput
        param(4).Value = LblDniOculto.Text
        param(4).Size = 50



        RealizaCArga = Datos.Agregar("CargaNuevaMatricula", param, " RealizaCArga de Alta de profesionales")





    End Function


    Private Sub EventoBuscar()

        Dim Rs As ADODB.Recordset
        Dim param(0) As ADODB.Parameter

        '----------inicializa---
        lBLresultado.Text = ""
        lBLresultado.Visible = False

        OcultayLimpiaCuadroDecarga()

        '--------------------------



        ''valido el Dni a buscar ''
        If TxtDniABuscar.Text = "" Then
            muestraMensaje_lbl("Falta dni para poder realizar la busqueda")
            Exit Sub
        Else
            If FG.ValCampoNumericos(TxtDniABuscar.Text) = False Then
                muestraMensaje_lbl("Solo se admiten numeros en el campo Dni")
                Exit Sub
            End If
        End If
        '-----------------------------




        param(0) = New ADODB.Parameter
        param(0).Name = "@Dni"
        param(0).Type = ADODB.DataTypeEnum.adVarChar
        param(0).Direction = ADODB.ParameterDirectionEnum.adParamInput
        param(0).Value = TxtDniABuscar.Text
        param(0).Size = 10



        '''''busco el nombre y el apellido'''
        Rs = Datos.TraerTodos("traeApellidoYNombrePorDni", param, "alta de profesionales de ImageButton1_Click ")
        If Rs.RecordCount > 0 Then
            Rs.MoveFirst()
            LblDniOculto.Text = TxtDniABuscar.Text
            lblPersona.Text = Rs.Fields(0).Value.ToString

        Else
            muestraMensaje_lbl("La persona no existe")
            Exit Sub
        End If
        ''''''''''''''''''''


        'aca busco los datos de la matricula q tenga''
        Rs = Datos.TraerTodos("traeDatosdeMaticuladoXdni", param, " alta de profesionales de ImageButton1_Click ")

        'Muestro el panel para cargar los datos --
        P_cargaDatos.Visible = True


        gv_DatosDelaPersona.DataSource = FG.cargaUnDataTable(Rs)
        gv_DatosDelaPersona.DataBind()
        '''''''''''''''''''''


    End Sub

    Private Function ValidaExistenciaDeLaMatricula(ByVal Matricula As String) As Boolean

        Dim Rs As ADODB.Recordset
        Dim param(0) As ADODB.Parameter


        param(0) = New ADODB.Parameter
        param(0).Name = "@Matricula"
        param(0).Type = ADODB.DataTypeEnum.adVarChar
        param(0).Direction = ADODB.ParameterDirectionEnum.adParamInput
        param(0).Value = Matricula
        param(0).Size = 50


        Rs = Datos.TraerTodos("BuscaSIExisteunaMatricula", param, "ValidaExistenciaDeLaMatricula")

        If Rs.RecordCount = 0 Then
            MsgBox("LA APLICACION NO PUDO constar la existencia de una matricula", MsgBoxStyle.Critical, "ERROR")
            ValidaExistenciaDeLaMatricula = False
            Exit Function
        End If


        ValidaExistenciaDeLaMatricula = CBool(Rs.Fields(0).Value)



    End Function

    Private Sub OcultaMsjeDeGuardar()
        LblMsjeAlGuardar.Text = ""
        LblMsjeAlGuardar.Visible = False

    End Sub

    Private Sub Muestra_MejeAl_Guardar(ByVal MsjeAmostrar As String)

        LblMsjeAlGuardar.Text = MsjeAmostrar
        LblMsjeAlGuardar.Visible = True


    End Sub


    Private Sub muestraMensaje_lbl(ByVal Msje As String)

        lBLresultado.Text = Msje
        lBLresultado.Visible = True

    End Sub


    Private Sub OcultayLimpiaCuadroDecarga()


        LblDniOculto.Text = ""
        lblPersona.Text = ""


        TxtnumMAtricula.Text = ""
        txtVigencia.Text = ""

        ''limpio la grilla 
        gv_DatosDelaPersona.DataBind()

        P_cargaDatos.Visible = False




    End Sub



    Private Sub inicilizoCombos()

        FG.CargaCombo("traerTipoMatricula", CboTipoMatricula)
        FG.CargaCombo("TraeEspecialidad", CboEspecialidad)

    End Sub

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Try
            If Not IsPostBack Then
                FG.culturaPaginas()
                '--cargo los combos 
                inicilizoCombos()

                '-'---donde se pone la matricula-
                OcultayLimpiaCuadroDecarga()

                'Cargo páginas anterior y actual!!!
                Var_Globales.Setea_paginas("Alta_profesionales.aspx")

            Else
                If Request.Form("__EVENTTARGET") = "FechaVigencia" Then
                    txtVigencia.Text = Request.Form("__EVENTARGUMENT")
                End If
            End If
        Catch ex As Exception
        End Try

    End Sub

    Protected Sub ImageButton1_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButton1.Click

        'pongo todo dentro del procedimiento sub para buscar cuando termino de 
        ' cargar
        EventoBuscar()



    End Sub

    Protected Sub CmdConfeccionar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CmdConfeccionar.Click
        Dim I As Integer

        OcultaMsjeDeGuardar()


        '-----------validaciones------------
        If TxtnumMAtricula.Text = "" Then
            Muestra_MejeAl_Guardar("Falta numero de matricula")
            Exit Sub
        End If

        If txtVigencia.Text = "" Then
            Muestra_MejeAl_Guardar("Falta la fecha de vigencia de la matricula")
            Exit Sub
        Else
            If IsDate(txtVigencia.Text) = False Then
                Muestra_MejeAl_Guardar("Formato invalido en la fecha de vigencia de la matricula")
                Exit Sub

            Else

                If CDate(txtVigencia.Text) < Date.Today Then
                    Muestra_MejeAl_Guardar("La vigencia no puede ser una fecha inferior a la actual")
                    Exit Sub
                End If

            End If

        End If



        ' me fijo q la matricul no este cargada 
        If gv_DatosDelaPersona.Rows.Count > 0 Then
            For I = 1 To gv_DatosDelaPersona.Rows.Count
                If UCase(gv_DatosDelaPersona.Rows(I - 1).Cells(0).Text) = UCase(TxtnumMAtricula.Text) Then
                    Muestra_MejeAl_Guardar("la matricula ya se encuentra en la lista")
                    Exit Sub
                End If
            Next I
        End If
        '-------------------------------------------


        '--------------------------------------------
        If ValidaExistenciaDeLaMatricula(TxtnumMAtricula.Text) = True Then
            Muestra_MejeAl_Guardar("La matricula ya se encuentra cargada a otra persona")
            Exit Sub
        End If
        '--------------------------------------










        If RealizaCArga() = True Then  '-->''esta es la funcion que hace la carga 

            'realizo de nuevo la busqueda para generar el efecto de q se cargo
            TxtDniABuscar.Text = LblDniOculto.Text
            OcultayLimpiaCuadroDecarga()
            EventoBuscar()
            '''''''''''''''''



        Else
            MsgBox("Se produjo un error al guardar los datos", MsgBoxStyle.Critical, "ERROR")

        End If





    End Sub


End Class